package com.ruoyi.inspection.service;


import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.inspection.domain.GovernCheckTaskPlan;
import com.ruoyi.inspection.domain.vo.GovernCheckTaskPlanVo;

import java.util.List;

/**
 * 政府专项检查计划表(GovernCheckTaskPlan)表服务接口
 *
 * @author makejava
 * @since 2024-06-19 16:16:10
 */
public interface GovernCheckTaskPlanService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    GovernCheckTaskPlan queryById(Long id);

    /**
     * 分页查询
     *
     * @param governCheckTaskPlan 筛选条件
     * @return 查询结果
     */
    List<GovernCheckTaskPlan> queryList(GovernCheckTaskPlan governCheckTaskPlan);

    /**
     * 分页查询
     *
     * @param governCheckTaskPlan 筛选条件
     * @return 查询结果
     */
    List<GovernCheckTaskPlan> queryByPage(GovernCheckTaskPlan governCheckTaskPlan);

    /**
     * 查询
     *
     * @param governCheckTaskPlan 筛选条件
     * @return 查询结果
     */
    public GovernCheckTaskPlan selectGovernCheckTaskPlan(GovernCheckTaskPlan governCheckTaskPlan);

    /**
     * 查询我的检查任务
     *
     * @param governCheckTaskPlan 查询条件
     * @return 对象列表
     */
    List<GovernCheckTaskPlan> selectByCheckUser(GovernCheckTaskPlan governCheckTaskPlan);

    /**
     * 查询我的检查任务(APP)
     *
     * @param governCheckTaskPlan 筛选条件
     * @return 查询结果
     */
    public List<GovernCheckTaskPlanVo> selectUsersTaskList(GovernCheckTaskPlan governCheckTaskPlan);

    /**
     * 新增数据
     *
     * @param governCheckTaskPlan 实例对象
     * @return 实例对象
     */
    GovernCheckTaskPlan insert(GovernCheckTaskPlan governCheckTaskPlan);

    /**
     * 修改数据
     *
     * @param governCheckTaskPlan 实例对象
     * @return 实例对象
     */
    int update(GovernCheckTaskPlan governCheckTaskPlan);

    /**
     * 修改数据
     *
     * @param governCheckTaskPlan 实例对象
     * @return 实例对象
     */
    boolean updateTaskInfo(GovernCheckTaskPlan governCheckTaskPlan);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Long id);

    /**
     * 通过ID查询检查人员
     *
     * @param governTaskPlanId 主键
     * @return 实例对象
     */
    public List<SysUser> queryCheckUsers(Long governTaskPlanId);

}
